Conventional techniques for performing tasks with a computing device rely on mechanical input devices, such as a keyboard, mouse, touch-sensitive screen, trackball, stylus, light pen or joystick. Such input devices are typically operated manually, either by hand or via an assistive mechanism designed for users with physical impairments. As an alternative to mechanical input devices, natural language user interfaces can be used to convert spoken queries into commands that are processed by the computer using voice and context recognition algorithms rather than by keying in commands through traditional input devices. Such user interfaces allow the user to interact with the computer in a more natural manner as one might have a conversation with another person. However, conventional techniques are limited by the extent of their programming and often have difficulty providing accurate or relevant responses to queries that are not anticipated by the system.
Complex tasks are sometimes distributed among many individuals or organizations using a crowdsourcing development model. With crowdsourcing, many small, repetitive and tedious tasks can be performed in parallel by a large number of individual contributors, which speeds up production and reduces costs when compared to traditional systematic and highly structured processes. Typically, crowdsourcing is used to gather and combine a diverse set of ideas for solving a particular problem into a single, cohesive solution.